package com.pronosticnews.server.domain.model;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;

@Entity
public class Participation implements fr.ysa.persistence.Entity {

	private static final long serialVersionUID = -276536418628332093L;

	public static enum VALUE_NAME {
		id, club, saison,  butsEncaisses, butsMarques, differenceButs, matchsGagnes, matchsPerdus, matchsJoues, matchsNuls, place, points
	}

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private java.lang.Integer id;

	@ManyToOne(fetch = FetchType.EAGER)
	private Club club;

	@ManyToOne(fetch = FetchType.EAGER)
	private Saison saison;

	@Column(nullable = false)
	private java.lang.Integer points = 0;

	@Column(name = "matchs_gagnes", nullable = false)
	private java.lang.Integer matchsGagnes = 0;

	@Column(name = "matchs_nuls", nullable = false)
	private java.lang.Integer matchsNuls = 0;

	@Column(name = "matchs_perdus", nullable = false)
	private java.lang.Integer matchsPerdus = 0;

	@Column(name = "matchs_joues", nullable = false)
	private java.lang.Integer matchsJoues = 0;

	@Column(name = "buts_marques", nullable = false)
	private java.lang.Integer butsMarques = 0;

	@Column(name = "buts_encaisses", nullable = false)
	private java.lang.Integer butsEncaisses = 0;

	@Column(name = "difference_buts", nullable = false)
	private java.lang.Integer differenceButs = 0;

	@Column(name = "place", nullable = false)
	private java.lang.Integer place = 0;

	public java.lang.Integer getPoints() {
		return points;
	}	
	
	public Club getClub() {
		return this.club;
	}

	public void setClub(Club club) {
		this.club = club;
	}

	public Saison getSaison() {
		return this.saison;
	}

	public void setSaison(Saison saison) {
		this.saison = saison;
	}

	public java.lang.Integer getId() {
		return id;
	}

	public void setId(java.lang.Integer id) {
		this.id = id;
	}

	public java.lang.Integer getMatchsGagnes() {
		return matchsGagnes;
	}

	public void setMatchsGagnes(java.lang.Integer matchsGagnes) {
		this.matchsGagnes = matchsGagnes;
	}

	public java.lang.Integer getMatchsNuls() {
		return matchsNuls;
	}

	public void setMatchsNuls(java.lang.Integer matchsNuls) {
		this.matchsNuls = matchsNuls;
	}

	public java.lang.Integer getMatchsPerdus() {
		return matchsPerdus;
	}

	public void setMatchsPerdus(java.lang.Integer matchsPerdus) {
		this.matchsPerdus = matchsPerdus;
	}

	public java.lang.Integer getMatchsJoues() {
		return matchsJoues;
	}

	public void setMatchsJoues(java.lang.Integer matchsJoues) {
		this.matchsJoues = matchsJoues;
	}

	public java.lang.Integer getButsMarques() {
		return butsMarques;
	}

	public void setButsMarques(java.lang.Integer butsMarques) {
		this.butsMarques = butsMarques;
	}

	public java.lang.Integer getButsEncaisses() {
		return butsEncaisses;
	}

	public void setButsEncaisses(java.lang.Integer butsEncaisses) {
		this.butsEncaisses = butsEncaisses;
	}

	public java.lang.Integer getDifferenceButs() {
		return differenceButs;
	}

	public void setDifferenceButs(java.lang.Integer differenceButs) {
		this.differenceButs = differenceButs;
	}

	public java.lang.Integer getPlace() {
		return place;
	}

	public void setPlace(java.lang.Integer place) {
		this.place = place;
	}

	public void setPoints(java.lang.Integer points) {
		this.points = points;
	}

	@Override
	public List<String> getColumnNameValues() {
		List<String> list = new ArrayList<String>();
		for (VALUE_NAME value : VALUE_NAME.values()) {
			list.add(value.name());
		}
		return list;
	}

}